// app.js
App({
    globalData: {
        token: null,
        hasCreatedCard: false, // 初始化为 false，表示未创建名片
        hasCollections: false, // 是否有收藏数据
        hasCards: false, // 是否有名片数据
        isLoggedIn: false, // 用户是否已登录
        cardImagePaths: [],
        userInfo: {
            id: '1',
        }
    },

    // 请求获取名片信息
    fetchCardInfo() {
        wx.request({
            url: `http://localhost:8080/system/card/user/${userId}`, // 替换为你的后端接口地址
            method: 'GET',
            header: {
                'Content-Type': 'application/json',
                'Authorization': `Bearer ${wx.getStorageSync('token')}` // 如果需要带 Token
            },
            success: (res) => {
                if (res.statusCode === 200 && res.data.code === 200) {
                    // 成功获取名片信息
                    console.log('名片信息:', res.data.data);
                    this.setData({
                        cardInfo: res.data.data,
                    });
                    this.generateBusinessCards();
                } else {
                    // 接口返回错误信息
                    console.error(res.data.msg);
                    wx.showToast({
                        title: res.data.msg,
                        icon: 'none',
                    });
                }
            },
            fail: (err) => {
                // 请求失败
                console.error('请求失败:', err);
                wx.showToast({
                    title: '请求失败，请稍后再试',
                    icon: 'none',
                });
            },
        });
    },

    wxRequest(method, url, data, callback, errFun) {
        const that = this
        // 如果已经有一个有效的 token，则直接发起请求
        if (that.globalData.token) {
            this._doRequest(method, url, data, callback, errFun);
        } else { // 否则先尝试从本地存储获取 token
            wx.getStorage({
                key: "token",
                success: (response) => {
                    console.log("App.js: 缓存中有token：" + response.data);
                    that.globalData.token = response.data;
                    this._doRequest(method, url, data, callback, errFun);
                },
                fail: () => { // 如果没有 token，则直接发起请求（比如这是一个不需要 token 的请求）
                    console.log("App.js: 缓存中没有token");
                    this._doRequest(method, url, data, callback, errFun);
                }
            });
        }
    },

    _doRequest(method, url, data, callback, errFun) {
        wx.request({
            url: url,
            method: method,
            data: data,
            header: {
                'token': this.globalData.token
            },
            success: function (response) {
                // 判断响应码看请求是否成功
                console.log(response);
                if ((response.data.code >= 200 && response.data.code <= 300)) {
                    wx.showToast({
                        title: '操作成功',
                        icon: 'success'
                    });
                    callback(response);
                } else {
                    console.log("App.js fail");
                    wx.showToast({
                        title: response.data.msg,
                        icon: 'none' // 最多只能显示两行文字
                    });
                }
            },
            fail: function (error) {
                console.log(error);
                wx.showToast({ // 提示错误信息
                    title: error.data.msg || error.errMsg,
                    icon: 'error'
                });
                errFun(error); // 如果有失败的回调就执行
            }
        })
    },

})